home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-07-26 | 7.4 KB | 162 lines | [TEXT/KAHL] |
- Symantec C++ 7.0.4 release notes
- ================================
-
- Copyright © 1994 Symantec Corporation. All Rights Reserved.
-
- - Fixes a code generation bug with PowerPC compilers with structure assignment.
- The source looked like:
-
- p->str1 = p->str2 = expression
-
- When str1 was a member of the struct.
-
- - Fixed a benign code generation inneficiency which caused stack frame sizes to
- grow unnecessarily after a function that called an unprototyped function with
- more than 8 arguments.
-
- - Fixes problem with line number records in the PowerPC compilers, only a
- portion of my fix had made it in.
-
- - Fixes a problem with preprocessing files that contain #pragma options() and
- #if __option directives being truncated.
-
- - No longer places the full pathname of files into the XCOFF result. This
- means that all build scripts will need to be modified to add parameters to
- makesym in order to get it to recognize and map all of the files involved.
-
- - Implements testability for ALL of the options in all compilers, only valid
- options for any given compiler will be accepted as inputs. Also added all
- options available in THINK C for backward compatibility, and added an option
- for mapcr which was omitted in the first round.
-
- ansi Y 0/1 1 if ANSI conformance is on
- ansi_relaxed Y 0/1 1 if relaxed ANSI conformance is on
- ansi_strict Y 0/1 1 if strict ANSI conformance is on
- read_header_once Y 0/1 1 if read each header file once is on
- chars_unsigned Y 0/1 1 if 'Treat chars as unsigned' is on
- pack_enums Y 0/1 1 if 'enums are always ints' is off
- mc68020+ Y 0/1 1 if 68020 code generation is enabled
- mc68881+ Y 0/1 1 if 68881 code generation is enabled
- mc68881_trans+ Y 0/1 1 if 68881 will be used for transcendentals
- double_8+ N 0/1 1 if 8 byte double is turned on
- struct_align Y 1/2/4 Value of 1, 2, or 4 from structure alignment setting
- pcrel_strings+ N 0/1 1 if PC relative strings is on
- global_optimizer Y 0/1 1 if the optimizer is enabled
- gopt_time Y 0/1 1 if optimizing for time, false if for space
- gopt_dead_assign N 0/1 1 if performing dead assignment elimination
- gopt_dead_variable N 0/1 1 if performing dead variable elimination
- gopt_cse N 0/1 1 if performing CSE elimination
- gopt_vbe N 0/1 1 if hoisting very busy expressions
- gopt_loop_invariant N 0/1 1 if performing loop invariant
- gopt_loop_induction N 0/1 1 if performing loop induction
- gopt_const_prop N 0/1 1 if performing constant propagation
- gopt_copy_prop N 0/1 1 if performing copy propagation
- gopt_loop N 0/1 1 if looping until cannot optimize
- force_frame Y 0/1 1 if always generating stack frames
- profile Y 0/1 1 if using the profiler
- macsbug_names+ Y 0/1 1 if generating macsbug names
- dont_inline Y 0/1 1 when using function calls for inlines
- stop_at_first_err Y 0/1 1 when stopping at the first reported error
- report_all_err Y 0/1 1 when reporting all errors in a translation unit
- generate_warn Y 0/1 1 when reporting any warnings
- warn_unintended_assign
- Y 0/1 1 when generating a warning for unintended assignment
- warn_nest_comments Y 0/1 1 when generating a warning regarding nested comments
- warn_unused_expressions
- Y 0/1 1 when warning about unused expressions
- warn_empty_loops Y 0/1 1 when warning about empty loops
- warn_large_auto Y 0/1 1 when warning about large automatic variables
- warn_old_style_delete
- Y 0/1 1 when warning about old style deletes
- warn_missing_overloads
- Y 0/1 1 when warning about missing overloads for postfix ++/--
- warn_ref_init Y 0/1 1 when warning about invalid reference initialization
- warn_used_before_set
- Y 0/1 1 when warning about a variable being used before set
- warn_return_addr_auto
- Y 0/1 1 when warning about returning the address of an automatic
- warn_unrecognized_pragma
- Y 0/1 1 when warning about unrecognized pragmas
- warn_old_style_definition
- Y 0/1 1 when warning about old-style function definitions
- warn_cast_incomplete_type
- Y 0/1 1 when warning about casts from incomplete types
- a4_globals*+ N 0/1 1 when a4 globals are being used
- far_code+ N 0/1 1 when compiling far code
- far_data+ N 0/1 1 when compiling far data
- jump_table+ N 0/1 1 when compiling with a jump table
- separate_strs$* N 0/1 1 when using 68K THINK C and seperate strs
- int_4$* N 0/1 0 only when using 2 byte int in THINK C
- native_fp$* N 0/1 1 when using native_fp option in THINK C
- stdc$* N 0/1 1 when using the Symantec C compiler
- trigraphs$* N 0/1 1 when recognizing trigraphs
- thinkc$* N 0/1 1 when using THINK C extensions in THINK C
- objectc$* N 0/1 1 when using object extensions to THINK C
- signed_pstrs$* N 0/1 1 when using signed pascal strings THINK C
- align_arrays$* N 0/1 1 when using THINK C align arrays
- virtual$* N 0/1 1 when methods virtual by default - THINK C
- indirect$* N 0/1 1 when methods indirect by default-THINK C
- class_names$* N 0/1 1 when generating class names in THINK C
- check_ptrs$* N 0/1 1 when checking pointer types in THINK C
- require_protos$* N 0/1 1 when requiring prototypes or using C++
- infer_protos$* N 0/1 1 when using infer prototypes in THINK C",
- long_macsbug_names$*N 0/1 1 when using long macsbug names format
- gopt_induction$* N 0/1 1 when using THINK C loop induction opt
- gopt_coloring$* N 0/1 1 when using THINK C coloring opt
- defer_adjust$* N 0/1 1 when using defer stack adjust in THINK C
- redundant_loads$* N 0/1 1 when eliminating redundant loads in THINK
- honor_register$* N 0/1 1 when honoring registers in THINK
- assign_registers$* N 0/1 1 when assigning registers in THINK
- mapcr# N 0/1 1 when \r is mapped to \n
-
- * = settable THINK only
- + = Not settable available in PowerPC compiler versions
- # = not settable in 68K compilers
- $ = 68K THINK C compatibility option
-
- - Fixes problem with -= of constants
-
- - Fixes problem with INFO template not in 'PowerPC C++'
-
- - Fixes problem with assigning to an array of structs
-
- - Fixes problem assigning an integer constant to a double
-
- - Fixes problems with treatment of integer constants in the range 32768-65535
- being treated as signed with regards sign extension
-
- - Fixes problem with register tracking when calling functions by pointer
- with mixed floating and integer arguments.
-
- - Fixes problem with functions returning a struct that get passed to another function
-
- - Fixes a bug with floating point comparisons in loops
-
- - Fixes problems with certain nested constructor calls
-
- - Fixes an internal error with certain reference parameters
-
- - Fixes a problem with generating . on function names erroneously (Unreported)
-
- - The problem with conversions of doubles to unsigned shorts with 68881 code generation
-
- - The problem with structure valued returns and passing the hidden argument to functions
-
- - Fixes the type of integer constants. This can be detected only through
- function overloading and did not affect constants otherwise (Unreported)
-
- - The PowerPC compiler disassemblies will now contain full symbolics and will
- be properly unmangled. Also fixes the problem with relative branches not showing
- the correct absolute target address.
-
- - Fixes a problem with near data generating far references to virtual function tables
-
- - Changes the way that error messages are generated. Error messages should now contain
- the full signatures of functions when function level errors are reported.
-
- - Fixes problem with generating profile information causing an internal error
-
- - Improves the performance of XSYM generation. This improves XSYM generation time
- by 31%.
-
-